package com.msmall.community.user.model;

import java.util.Date;
import java.util.Map;
import java.util.TreeMap;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.msmall.base.model.BaseObject;

@Entity
@Table(name="base_user_profile")
public class UserProfile extends BaseObject{

	private static final long serialVersionUID = 2629240735598198369L;

	public static Map<String, String> SALARY = new TreeMap<String, String>(); //工资范围
	public static Map<String, String> CHARACTERISE = new TreeMap<String, String>();//个性，性格
	public static Map<String, String> BODYTYPE = new TreeMap<String, String>();//体型
	public static Map<String, String> SMOKE = new TreeMap<String, String>();//吸烟情况
	public static Map<String, String> DRINK = new TreeMap<String, String>();//喝酒情况
	public static Map<String, String> ASTERISM = new TreeMap<String, String>();//星座
	public static Map<String, String> BLOODTYPE = new TreeMap<String, String>();//个性，性格
	public static Map<String, String> MARRIED = new TreeMap<String, String>();//个性，性格
	public static Map<String, String> FAVSPORTS = new TreeMap<String, String>();//运动
	public static Map<String, String> FAVOTHERS = new TreeMap<String, String>();//兴趣爱好
	public static Map<String, String> EDUDEGREE = new TreeMap<String, String>();//学历
	public static Map<String, String> EDUSPECIALTY = new TreeMap<String, String>(); //学习专业
	public static Map<String, String> JOBTITLE = new TreeMap<String, String>(); //职位
	public static Map<String, String> JOBPROFESSION = new TreeMap<String, String>(); //从事行业
	static{
		SALARY.put("1", "1000以下");
		SALARY.put("2", "1001~2000");
		SALARY.put("3", "2001~5000");
		SALARY.put("4", "5001~10000");
		SALARY.put("5", "10001~20000");
		SALARY.put("6", "20001~50000");
		SALARY.put("7", "50000以上");
		CHARACTERISE.put("1", "浪漫迷人");
		CHARACTERISE.put("2", "成熟稳重");
		CHARACTERISE.put("3", "风趣幽默");
		CHARACTERISE.put("4", "乐观派");
		CHARACTERISE.put("5", "活泼可爱");
		CHARACTERISE.put("6", "忠厚老实");
		CHARACTERISE.put("7", "温柔体贴");
		CHARACTERISE.put("8", "多愁善感");
		CHARACTERISE.put("9", "新潮时尚");
		CHARACTERISE.put("10", "豪放不羁");
		BODYTYPE.put("1", "瘦");
		BODYTYPE.put("2", "匀称");
		BODYTYPE.put("3", "苗条");
		BODYTYPE.put("4", "高挑");
		BODYTYPE.put("5", "丰满");
		BODYTYPE.put("6", "健壮");
		BODYTYPE.put("7", "魁梧");
		BODYTYPE.put("8", "胖");
		SMOKE.put("1", "不吸，很反感吸烟");
		SMOKE.put("2", "不吸，但不反感");
		SMOKE.put("3", "社交时偶尔吸");
		SMOKE.put("4", "每天吸烟");
		SMOKE.put("5", "有烟瘾");
		DRINK.put("1", "不喝");
		DRINK.put("2", "社交时喝");
		DRINK.put("3", "偶尔喝");
		DRINK.put("4", "经常喝");
		DRINK.put("5", "每天喝");
		ASTERISM.put("1", "白羊座");
		ASTERISM.put("2", "处女座");
		ASTERISM.put("3", "金牛座");
		ASTERISM.put("4", "巨蟹座");
		ASTERISM.put("5", "魔蝎座");
		ASTERISM.put("6", "射手座");
		ASTERISM.put("7", "狮子座");
		ASTERISM.put("8", "双鱼座");
		ASTERISM.put("9", "双子座");
		ASTERISM.put("10", "水瓶座");
		ASTERISM.put("11", "天平座");
		ASTERISM.put("12", "天蝎座");
		BLOODTYPE.put("1", "A");
		BLOODTYPE.put("2", "B");
		BLOODTYPE.put("3", "0");
		BLOODTYPE.put("4", "AB");
		BLOODTYPE.put("5", "其他");
		MARRIED.put("1", "已婚");
		MARRIED.put("2", "未婚");
		MARRIED.put("3", "离异");
		FAVSPORTS.put("1", "足球");
		FAVSPORTS.put("2", "篮球");
		FAVSPORTS.put("3", "排球");
		FAVSPORTS.put("4", "网球");
		FAVSPORTS.put("5", "羽毛球");
		FAVSPORTS.put("6", "乒乓球");
		FAVSPORTS.put("7", "壁球");
		FAVSPORTS.put("8", "保龄球");
		FAVSPORTS.put("9", "手球");
		FAVSPORTS.put("10", "橄榄球");
		FAVSPORTS.put("11", "棒球");
		FAVSPORTS.put("12", "高尔夫");
		FAVSPORTS.put("13", "健身");
		FAVSPORTS.put("14", "跑步");
		FAVSPORTS.put("15", "自行车");
		FAVSPORTS.put("16", "摩托车");
		FAVSPORTS.put("17", "汽车");
		FAVSPORTS.put("18", "舞蹈");
		FAVSPORTS.put("19", "体操");
		FAVSPORTS.put("29", "跆拳道");
		FAVSPORTS.put("21", "柔道");
		FAVSPORTS.put("22", "空手道");
		FAVSPORTS.put("23", "游泳");
		FAVSPORTS.put("24", "潜水");
		FAVSPORTS.put("25", "水上运动");
		FAVSPORTS.put("26", "航海");
		FAVSPORTS.put("27", "滑雪/滑冰");
		FAVSPORTS.put("28", "拳击");
		FAVSPORTS.put("29", "钓鱼");
		FAVSPORTS.put("30", "瑜珈");
		FAVSPORTS.put("31", "武术");
		FAVSPORTS.put("32", "其它");
		FAVOTHERS.put("1", "网络");
		FAVOTHERS.put("2", "汽车");
		FAVOTHERS.put("3", "动物");
		FAVOTHERS.put("4", "摄影");
		FAVOTHERS.put("5", "影视");
		FAVOTHERS.put("6", "音乐");
		FAVOTHERS.put("7", "写作");
		FAVOTHERS.put("8", "购物");
		FAVOTHERS.put("9", "手工艺");
		FAVOTHERS.put("10", "园艺");
		FAVOTHERS.put("11", "舞蹈");
		FAVOTHERS.put("12", "展览");
		FAVOTHERS.put("13", "烹饪");
		FAVOTHERS.put("14", "读书");
		FAVOTHERS.put("15", "绘画");
		FAVOTHERS.put("16", "计算机");
		FAVOTHERS.put("17", "体育运动");
		FAVOTHERS.put("18", "旅游");
		FAVOTHERS.put("19", "电子游戏");
		FAVOTHERS.put("20", "其它");
		EDUDEGREE.put("1", "小学");
		EDUDEGREE.put("2", "初中");
		EDUDEGREE.put("3", "高中");
		EDUDEGREE.put("4", "中专");
		EDUDEGREE.put("5", "大专");
		EDUDEGREE.put("6", "本科");
		EDUDEGREE.put("7", "硕士");
		EDUDEGREE.put("8", "博士");
		EDUSPECIALTY.put("1", "计算机类");
		EDUSPECIALTY.put("2", "电子信息类");
		EDUSPECIALTY.put("3", "中文类");
		EDUSPECIALTY.put("4", "外文类");
		EDUSPECIALTY.put("5", "经济学类");
		EDUSPECIALTY.put("6", "金融学类");
		EDUSPECIALTY.put("7", "管理类");
		EDUSPECIALTY.put("8", "市场营销类");
		EDUSPECIALTY.put("9", "法学类");
		EDUSPECIALTY.put("10", "教育类");
		EDUSPECIALTY.put("11", "社会学类");
		EDUSPECIALTY.put("12", "历史类");
		EDUSPECIALTY.put("13", "哲学类");
		EDUSPECIALTY.put("14", "艺术类");
		EDUSPECIALTY.put("15", "图书馆类");
		EDUSPECIALTY.put("16", "情报档案类");
		EDUSPECIALTY.put("17", "政治类");
		EDUSPECIALTY.put("18", "数学类");
		EDUSPECIALTY.put("19", "统计类");
		EDUSPECIALTY.put("20", "物理类");
		EDUSPECIALTY.put("21", "化学类");
		EDUSPECIALTY.put("22", "生物类");
		EDUSPECIALTY.put("23", "食品类");
		EDUSPECIALTY.put("24", "医学类");
		EDUSPECIALTY.put("25", "环境类");
		EDUSPECIALTY.put("26", "地理类");
		EDUSPECIALTY.put("27", "建筑类");
		EDUSPECIALTY.put("28", "测绘类");
		EDUSPECIALTY.put("29", "电气类");
		EDUSPECIALTY.put("30", "机械类");
		JOBPROFESSION.put("1", "在校学生");
		JOBPROFESSION.put("2", "计算机/互联网/IT");
		JOBPROFESSION.put("3", "电子/半导体/仪表仪器");
		JOBPROFESSION.put("4", "通信技术");
		JOBPROFESSION.put("5", "销售");
		JOBPROFESSION.put("6", "市场拓展");
		JOBPROFESSION.put("7", "公关/商务");
		JOBPROFESSION.put("8", "采购/贸易");
		JOBPROFESSION.put("9", "客户服务/技术支持");
		JOBPROFESSION.put("10", "人力资源/行政/后勤");
		JOBPROFESSION.put("11", "高级管理");
		JOBPROFESSION.put("12", "生产/加工/制造");
		JOBPROFESSION.put("13", "质控/安检");
		JOBPROFESSION.put("14", "工程机械");
		JOBPROFESSION.put("15", "技工");
		JOBPROFESSION.put("16", "财会/审计/统计");
		JOBPROFESSION.put("17", "金融/证券/投资/保险");
		JOBPROFESSION.put("18", "房地产/装修/物业");
		JOBPROFESSION.put("19", "仓储/物流");
		JOBPROFESSION.put("20", "交通/运输");
		JOBPROFESSION.put("21", "普通劳动力/家政服务");
		JOBPROFESSION.put("22", "普通服务行业");
		JOBPROFESSION.put("23", "航空服务业");
		JOBPROFESSION.put("24", "教育/培训");
		JOBPROFESSION.put("25", "咨询/顾问");
		JOBPROFESSION.put("26", "学术/科研");
		JOBPROFESSION.put("27", "法律");
		JOBPROFESSION.put("28", "设计/创意");
		JOBPROFESSION.put("29", "文学/传媒/影视");
		JOBPROFESSION.put("30", "餐饮/旅游");
		JOBPROFESSION.put("41", "化工");
		JOBPROFESSION.put("42", "能源/地质勘查");
		JOBPROFESSION.put("43", "医疗/护理");
		JOBPROFESSION.put("44", "保健/美容");
		JOBPROFESSION.put("45", "生物/制药/医疗器械");
		JOBPROFESSION.put("46", "体育工作者");
		JOBPROFESSION.put("47", "翻译");
		JOBPROFESSION.put("48", "公务员/国家干部");
		JOBPROFESSION.put("49", "私营业主");
		JOBPROFESSION.put("50", "农/林/牧/渔业");
		JOBPROFESSION.put("51", "自由职业者");
		JOBPROFESSION.put("52", "其他");
		JOBTITLE.put("1", "普通员工");
		JOBTITLE.put("2", "经理");
		JOBTITLE.put("3", "高级经理");
		JOBTITLE.put("4", "部门经理");
		JOBTITLE.put("5", "懂事");
		JOBTITLE.put("6", "总裁");
		JOBTITLE.put("7", "其他");
	}
	@Id
	@Column(name="profile_id",insertable=false,updatable=false)
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Long profileId;

	@Column(name="user_id")
	private Long userid;
	
	//身高CM
	@Column(name="height")
	private Integer height;
	
	//体重KG
	@Column(name="weight")
	private Integer weight;
	
	//工资范围 
	@Column(name="salary")
	private String salary;
	//个性，性格
	@Column(name="characterise")
	private String characterise;
	
	//体型
	@Column(name="body_type")
	private String bodyType;
	//吸烟情况
	@Column(name="smoke")
	private String smoke;
	//喝酒情况
	@Column(name="drink")
	private String drink;
	//星座
	@Column(name="asterism")
	private String asterism;

	@Column(name="hometown")
	private String hometown;
	
	@Column(name="residence")
	private String residence;
	//
	@Column(name="blood_type")
	private String bloodType;
	//
	@Column(name="married")
	private String married;

	@Column(name="fav_book")
	private String favBook;

	@Column(name="fav_moive")
	private String favMoive;
	//
	@Column(name="fav_sports")
	private String favSports;
 
	@Column(name="fav_idol")
	private String favIdol;

	// 兴趣爱好
	@Column(name="fav_others")
	private String favOthers;

	//学历
	@Column(name="edu_degree") 
	private String eduDegree;

	@Column(name="edu_school")//最后毕业院校,只高等院校
	private String eduSchool;

	 // 学习的专业
	@Column(name="edu_specialty")
	private String eduSpecialty;

	@Column(name="edu_enrol_year") //入学时间
	private Integer eduEnrolYear;

	@Column(name="job_title") //职位
	private String jobTitle;

	// 从事行业
	@Column(name="job_profession")
	private String jobProfession;

	@Column(name="job_company")
	private String jobCompany;

	@Column(name="job_enrol_year")
	private Integer jobEnrolYear;

	//现在住址
	@Column(name="address")
	private String address;
	//现在住址邮编
	@Column(name="postal")
	private String postal;
	
	/**
	 * 空间被访问次数
	 */
	@Column(name="visit_amount")
	private Long visitAmount;
	
	/**
	 * 好友数量
	 */
	@Column(name="roster_amount")
	private Integer rosterAmount;
	
	/**
	 * 日记数量
	 */
	@Column(name="diary_amount")
	private Integer diaryAmount;
	/**
	 * 上传个人图片数量
	 */
	@Column(name="album_amount")
	private Integer albumAmount;
	/**
	 * 帖子数量
	 */
	@Column(name="topic_amount")
	private Integer topicAmount;
	/**
	 * 帖子回复数量
	 */
	@Column(name="thread_amount")
	private Integer threadAmount;
	
	/**
	 * 精华帖子数量
	 */
	@Column(name="elite_amount")
	private Integer eliteAmount;
	
	@Column(name="modify_time")
	@Temporal(TemporalType.TIMESTAMP)
	private Date modifyTime;

	public UserProfile() {
		super();
	}
	
	public Long getProfileId() {
		return profileId;
	}

	public void setProfileId(Long profileId) {
		this.profileId = profileId;
	}

	public Long getUserid() {
		return userid;
	}

	public void setUserid(Long userid) {
		this.userid = userid;
	}

	public String getHometown() {
		return this.hometown;
	}

	public void setHometown(String hometown) {
		this.hometown = hometown;
	}

	public String getResidence() {
		return this.residence;
	}

	public void setResidence(String residence) {
		this.residence = residence;
	}

	public String getBloodType() {
		return this.bloodType;
	}

	public void setBloodType(String bloodType) {
		this.bloodType = bloodType;
	}

	public java.util.Date getModifyTime() {
		return this.modifyTime;
	}

	public void setModifyTime(Date modifyTime) {
		this.modifyTime = modifyTime;
	}

	public String getFavBook() {
		return favBook;
	}

	public void setFavBook(String favBook) {
		this.favBook = favBook;
	}

	public String getFavMoive() {
		return favMoive;
	}

	public void setFavMoive(String favMoive) {
		this.favMoive = favMoive;
	}

	public String getFavSports() {
		return favSports;
	}

	public void setFavSports(String favSports) {
		this.favSports = favSports;
	}

	public String getFavIdol() {
		return favIdol;
	}

	public void setFavIdol(String favIdol) {
		this.favIdol = favIdol;
	}

	public String getFavOthers() {
		return favOthers;
	}

	public void setFavOthers(String favOthers) {
		this.favOthers = favOthers;
	}

	public String getEduDegree() {
		return eduDegree;
	}

	public void setEduDegree(String eduDegree) {
		this.eduDegree = eduDegree;
	}

	public String getEduSchool() {
		return eduSchool;
	}

	public void setEduSchool(String eduSchool) {
		this.eduSchool = eduSchool;
	}

	public String getEduSpecialty() {
		return eduSpecialty;
	}

	public void setEduSpecialty(String eduSpecialty) {
		this.eduSpecialty = eduSpecialty;
	}

	public String getJobTitle() {
		return jobTitle;
	}

	public void setJobTitle(String jobTitle) {
		this.jobTitle = jobTitle;
	}

	public String getJobProfession() {
		return jobProfession;
	}

	public void setJobProfession(String jobProfession) {
		this.jobProfession = jobProfession;
	}

	public String getJobCompany() {
		return jobCompany;
	}

	public void setJobCompany(String jobCompany) {
		this.jobCompany = jobCompany;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getPostal() {
		return postal;
	}

	public void setPostal(String postal) {
		this.postal = postal;
	}

	public Integer getHeight() {
		return height;
	}

	public void setHeight(Integer height) {
		this.height = height;
	}

	public Integer getWeight() {
		return weight;
	}

	public void setWeight(Integer weight) {
		this.weight = weight;
	}

	public String getSalary() {
		return salary;
	}

	public void setSalary(String salary) {
		this.salary = salary;
	}

	public String getCharacterise() {
		return characterise;
	}

	public void setCharacterise(String characterise) {
		this.characterise = characterise;
	}

	public String getBodyType() {
		return bodyType;
	}

	public void setBodyType(String bodyType) {
		this.bodyType = bodyType;
	}

	public String getSmoke() {
		return smoke;
	}

	public void setSmoke(String smoke) {
		this.smoke = smoke;
	}

	public String getDrink() {
		return drink;
	}

	public void setDrink(String drink) {
		this.drink = drink;
	}

	public String getAsterism() {
		return asterism;
	}

	public void setAsterism(String asterism) {
		this.asterism = asterism;
	}

	public String getMarried() {
		return married;
	}

	public void setMarried(String married) {
		this.married = married;
	}

	public Integer getEduEnrolYear() {
		return eduEnrolYear;
	}

	public void setEduEnrolYear(Integer eduEnrolYear) {
		this.eduEnrolYear = eduEnrolYear;
	}

	public Integer getJobEnrolYear() {
		return jobEnrolYear;
	}

	public void setJobEnrolYear(Integer jobEnrolYear) {
		this.jobEnrolYear = jobEnrolYear;
	}

	public Long getVisitAmount() {
		return visitAmount;
	}

	public void setVisitAmount(Long visitAmount) {
		this.visitAmount = visitAmount;
	}

	public Integer getRosterAmount() {
		return rosterAmount;
	}

	public void setRosterAmount(Integer rosterAmount) {
		this.rosterAmount = rosterAmount;
	}

	public Integer getDiaryAmount() {
		return diaryAmount;
	}

	public void setDiaryAmount(Integer diaryAmount) {
		this.diaryAmount = diaryAmount;
	}

	public Integer getAlbumAmount() {
		return albumAmount;
	}

	public void setAlbumAmount(Integer albumAmount) {
		this.albumAmount = albumAmount;
	}

	public Integer getTopicAmount() {
		return topicAmount;
	}

	public void setTopicAmount(Integer topicAmount) {
		this.topicAmount = topicAmount;
	}

	public Integer getEliteAmount() {
		return eliteAmount;
	}

	public void setEliteAmount(Integer eliteAmount) {
		this.eliteAmount = eliteAmount;
	}

	public Integer getThreadAmount() {
		return threadAmount;
	}

	public void setThreadAmount(Integer threadAmount) {
		this.threadAmount = threadAmount;
	}

	@Override
	public boolean equals(Object o) {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public int hashCode() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return null;
	}

}
